package com.resou.reader.utils;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.Toast;

import com.google.gson.Gson;
import com.resou.reader.ReSouApplication;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyUtil {
    /**
     * 深层拷贝
     *
     * @param obj       需要拷贝的对象
     * @param classType 被拷贝对象的类型
     * @return 深拷贝的对象
     */
    public static <T> T Copy(Object obj, Class<T> classType) {
        String json = ReSouApplication.gson.toJson(obj);
        return ReSouApplication.gson.fromJson(json, classType);
    }

    public static void saveBmpGallery(Context mContext, Bitmap bmp, String picName) {

        String fileName = null;
        //系统相册目录
        String galleryPath = Environment.getExternalStorageDirectory()
                + File.separator + Environment.DIRECTORY_DCIM
                + File.separator + "Camera" + File.separator;


        // 声明文件对象
        File file = null;
        // 声明输出流
        FileOutputStream outStream = null;

        try {
            // 如果有目标文件，直接获得文件对象，否则创建一个以filename为名称的文件
            file = new File(galleryPath, picName + ".jpg");
            // 获得文件相对路径
            fileName = file.toString();
            // 获得输出流，如果文件中有内容，追加内容
            outStream = new FileOutputStream(fileName);
            if (null != outStream) {
                bmp.compress(Bitmap.CompressFormat.PNG, 90, outStream);
            }

        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            try {
                if (outStream != null) {
                    outStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //通知相册更新
        MediaStore.Images.Media.insertImage(mContext.getContentResolver(),
                bmp, fileName, null);
        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        Uri uri = Uri.fromFile(file);
        intent.setData(uri);
        mContext.sendBroadcast(intent);
        Toast.makeText(mContext, "保存成功", Toast.LENGTH_SHORT).show();

    }

    public static void saveBmpGallery(Context applicationContext, Bitmap decodeStream) {
    }
}
